home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-05-19 | 38.2 KB | 2,012 lines |
- #define EXTERN extern
- #include "texd.h"
-
- zshowbox ( p )
- halfword p ;
- {showbox_regmem
- depththreshold = eqtb [ 5292 ] .cint ;
- breadthmax = eqtb [ 5291 ] .cint ;
- if ( breadthmax <= 0 )
- breadthmax = 5 ;
- if ( poolptr + depththreshold >= poolsize )
- depththreshold = poolsize - poolptr - 1 ;
- shownodelist ( p ) ;
- println () ;
- }
- zdeletetokenref ( p )
- halfword p ;
- {deletetokenref_regmem
- if ( mem [ p ] .hh .v.LH == 0 )
- flushlist ( p ) ;
- else decr ( mem [ p ] .hh .v.LH ) ;
- }
- zdeleteglueref ( p )
- halfword p ;
- {deleteglueref_regmem
- if ( mem [ p ] .hh .v.RH == 0 )
- freenode ( p , 4 ) ;
- else decr ( mem [ p ] .hh .v.RH ) ;
- }
- zflushnodelist ( p )
- halfword p ;
- {/* 30 */ flushnodelist_regmem
- halfword q ;
- while ( p != 0 ) {
-
- q = mem [ p ] .hh .v.RH ;
- if ( ( p >= himemmin ) )
- {
- mem [ p ] .hh .v.RH = avail ;
- avail = p ;
- ;
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- else {
-
- switch ( mem [ p ] .hh.b0 )
- {case 0 :
- case 1 :
- case 13 :
- {
- flushnodelist ( mem [ p + 5 ] .hh .v.RH ) ;
- freenode ( p , 7 ) ;
- goto lab30 ;
- }
- break ;
- case 2 :
- {
- freenode ( p , 4 ) ;
- goto lab30 ;
- }
- break ;
- case 3 :
- {
- flushnodelist ( mem [ p + 4 ] .hh .v.LH ) ;
- deleteglueref ( mem [ p + 4 ] .hh .v.RH ) ;
- freenode ( p , 5 ) ;
- goto lab30 ;
- }
- break ;
- case 8 :
- {
- switch ( mem [ p ] .hh.b1 )
- {case 0 :
- freenode ( p , 3 ) ;
- break ;
- case 1 :
- case 3 :
- {
- deletetokenref ( mem [ p + 1 ] .hh .v.RH ) ;
- freenode ( p , 2 ) ;
- goto lab30 ;
- }
- break ;
- case 2 :
- freenode ( p , 2 ) ;
- break ;
- default:
- confusion ( 1137 ) ;
- break ;
- }
- goto lab30 ;
- }
- break ;
- case 10 :
- {
- {
- if ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH == 0 )
- freenode ( mem [ p + 1 ] .hh .v.LH , 4 ) ;
- else decr ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH ) ;
- }
- if ( mem [ p + 1 ] .hh .v.RH != 0 )
- flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- }
- break ;
- case 11 :
- case 9 :
- case 12 :
- ;
- break ;
- case 6 :
- flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- break ;
- case 4 :
- deletetokenref ( mem [ p + 1 ] .cint ) ;
- break ;
- case 7 :
- {
- flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ;
- flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- }
- break ;
- case 5 :
- flushnodelist ( mem [ p + 1 ] .cint ) ;
- break ;
- case 14 :
- {
- freenode ( p , 3 ) ;
- goto lab30 ;
- }
- break ;
- case 15 :
- {
- flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ;
- flushnodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ;
- flushnodelist ( mem [ p + 2 ] .hh .v.RH ) ;
- freenode ( p , 3 ) ;
- goto lab30 ;
- }
- break ;
- case 16 :
- case 17 :
- case 18 :
- case 19 :
- case 20 :
- case 21 :
- case 22 :
- case 23 :
- case 24 :
- case 27 :
- case 26 :
- case 29 :
- case 28 :
- {
- if ( mem [ p + 1 ] .hh .v.RH >= 2 )
- flushnodelist ( mem [ p + 1 ] .hh .v.LH ) ;
- if ( mem [ p + 2 ] .hh .v.RH >= 2 )
- flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ;
- if ( mem [ p + 3 ] .hh .v.RH >= 2 )
- flushnodelist ( mem [ p + 3 ] .hh .v.LH ) ;
- if ( mem [ p ] .hh.b0 == 24 )
- freenode ( p , 5 ) ;
- else if ( mem [ p ] .hh.b0 == 28 )
- freenode ( p , 5 ) ;
- else freenode ( p , 4 ) ;
- goto lab30 ;
- }
- break ;
- case 30 :
- case 31 :
- {
- freenode ( p , 4 ) ;
- goto lab30 ;
- }
- break ;
- case 25 :
- {
- flushnodelist ( mem [ p + 2 ] .hh .v.LH ) ;
- flushnodelist ( mem [ p + 3 ] .hh .v.LH ) ;
- freenode ( p , 6 ) ;
- goto lab30 ;
- }
- break ;
- default:
- confusion ( 221 ) ;
- break ;
- }
- freenode ( p , 2 ) ;
- lab30: ;
- }
- p = q ;
- }
- }
- halfword zcopynodelist ( p )
- halfword p ;
- {register halfword Result; copynodelist_regmem
- halfword h ;
- halfword q ;
- halfword r ;
- schar words ;
- h = getavail () ;
- q = h ;
- while ( p != 0 ) {
-
- words = 1 ;
- if ( ( p >= himemmin ) )
- r = getavail () ;
- else switch ( mem [ p ] .hh.b0 )
- {case 0 :
- case 1 :
- case 13 :
- {
- r = getnode ( 7 ) ;
- mem [ r + 6 ] = mem [ p + 6 ] ;
- mem [ r + 5 ] = mem [ p + 5 ] ;
- mem [ r + 5 ] .hh .v.RH = copynodelist ( mem [ p + 5 ] .hh .v.RH ) ;
- words = 5 ;
- }
- break ;
- case 2 :
- {
- r = getnode ( 4 ) ;
- words = 4 ;
- }
- break ;
- case 3 :
- {
- r = getnode ( 5 ) ;
- mem [ r + 4 ] = mem [ p + 4 ] ;
- incr ( mem [ mem [ p + 4 ] .hh .v.RH ] .hh .v.RH ) ;
- mem [ r + 4 ] .hh .v.LH = copynodelist ( mem [ p + 4 ] .hh .v.LH ) ;
- words = 4 ;
- }
- break ;
- case 8 :
- switch ( mem [ p ] .hh.b1 )
- {case 0 :
- {
- r = getnode ( 3 ) ;
- words = 3 ;
- }
- break ;
- case 1 :
- case 3 :
- {
- r = getnode ( 2 ) ;
- incr ( mem [ mem [ p + 1 ] .hh .v.RH ] .hh .v.LH ) ;
- words = 2 ;
- }
- break ;
- case 2 :
- {
- r = getnode ( 2 ) ;
- words = 2 ;
- }
- break ;
- default:
- confusion ( 1136 ) ;
- break ;
- }
- break ;
- case 10 :
- {
- r = getnode ( 2 ) ;
- incr ( mem [ mem [ p + 1 ] .hh .v.LH ] .hh .v.RH ) ;
- mem [ r + 1 ] .hh .v.LH = mem [ p + 1 ] .hh .v.LH ;
- mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- }
- break ;
- case 11 :
- case 9 :
- case 12 :
- {
- r = getnode ( 2 ) ;
- words = 2 ;
- }
- break ;
- case 6 :
- {
- r = getnode ( 2 ) ;
- mem [ r + 1 ] = mem [ p + 1 ] ;
- mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- }
- break ;
- case 7 :
- {
- r = getnode ( 2 ) ;
- mem [ r + 1 ] .hh .v.LH = copynodelist ( mem [ p + 1 ] .hh .v.LH ) ;
- mem [ r + 1 ] .hh .v.RH = copynodelist ( mem [ p + 1 ] .hh .v.RH ) ;
- }
- break ;
- case 4 :
- {
- r = getnode ( 2 ) ;
- incr ( mem [ mem [ p + 1 ] .cint ] .hh .v.LH ) ;
- words = 2 ;
- }
- break ;
- case 5 :
- {
- r = getnode ( 2 ) ;
- mem [ r + 1 ] .cint = copynodelist ( mem [ p + 1 ] .cint ) ;
- }
- break ;
- default:
- confusion ( 222 ) ;
- break ;
- }
- while ( words > 0 ) {
-
- decr ( words ) ;
- mem [ r + words ] = mem [ p + words ] ;
- }
- mem [ q ] .hh .v.RH = r ;
- q = r ;
- p = mem [ p ] .hh .v.RH ;
- }
- mem [ q ] .hh .v.RH = 0 ;
- q = mem [ h ] .hh .v.RH ;
- {
- mem [ h ] .hh .v.RH = avail ;
- avail = h ;
- ;
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- Result = q ;
- return(Result) ;
- }
- zprintmode ( m )
- integer m ;
- {printmode_regmem
- if ( m > 0 )
- switch ( m / ( 100 ) )
- {case 0 :
- print ( 223 ) ;
- break ;
- case 1 :
- print ( 224 ) ;
- break ;
- case 2 :
- print ( 225 ) ;
- break ;
- }
- else if ( m == 0 )
- print ( 226 ) ;
- else switch ( ( - (integer) m ) / ( 100 ) )
- {case 0 :
- print ( 227 ) ;
- break ;
- case 1 :
- print ( 228 ) ;
- break ;
- case 2 :
- print ( 211 ) ;
- break ;
- }
- print ( 229 ) ;
- }
- pushnest () {
- pushnest_regmem
- if ( nestptr > maxneststack )
- {
- maxneststack = nestptr ;
- if ( nestptr == nestsize )
- overflow ( 230 , nestsize ) ;
- }
- nest [ nestptr ] = curlist ;
- incr ( nestptr ) ;
- curlist .headfield = getavail () ;
- curlist .tailfield = curlist .headfield ;
- curlist .pgfield = 0 ;
- curlist .mlfield = line ;
- }
- popnest () {
- popnest_regmem
- {
- mem [ curlist .headfield ] .hh .v.RH = avail ;
- avail = curlist .headfield ;
- ;
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- decr ( nestptr ) ;
- curlist = nest [ nestptr ] ;
- }
- showactivities () {
- showactivities_regmem
- integer p ;
- short m ;
- integer a ;
- halfword q, r ;
- integer t ;
- nest [ nestptr ] = curlist ;
- printnl ( 206 ) ;
- println () ;
- {register integer for_end; p = nestptr ; for_end = 0 ; if ( p >= for_end)
- do
- {
- m = nest [ p ] .modefield ;
- a = nest [ p ] .auxfield ;
- printnl ( 231 ) ;
- printmode ( m ) ;
- print ( 232 ) ;
- printint ( abs ( nest [ p ] .mlfield ) ) ;
- if ( nest [ p ] .mlfield < 0 )
- print ( 233 ) ;
- if ( p == 0 )
- {
- if ( memtop - 2 != pagetail )
- {
- printnl ( 828 ) ;
- if ( outputactive )
- print ( 829 ) ;
- showbox ( mem [ memtop - 2 ] .hh .v.RH ) ;
- if ( pagecontents > 0 )
- {
- printnl ( 830 ) ;
- printtotals () ;
- printnl ( 831 ) ;
- printscaled ( pagesofar [ 0 ] ) ;
- r = mem [ memtop ] .hh .v.RH ;
- while ( r != memtop ) {
-
- println () ;
- printesc ( 198 ) ;
- t = mem [ r ] .hh.b1 ;
- printint ( t ) ;
- print ( 832 ) ;
- t = xovern ( mem [ r + 3 ] .cint , 1000 ) * eqtb [ 5317 + t ]
- .cint ;
- printscaled ( t ) ;
- if ( mem [ r ] .hh.b0 == 1 )
- {
- q = memtop - 2 ;
- t = 0 ;
- do {
- q = mem [ q ] .hh .v.RH ;
- if ( ( mem [ q ] .hh.b0 == 3 ) && ( mem [ q ] .hh.b1 == mem
- [ r ] .hh.b1 ) )
- incr ( t ) ;
- } while ( ! ( q == mem [ r + 1 ] .hh .v.LH ) ) ;
- print ( 833 ) ;
- printint ( t ) ;
- print ( 834 ) ;
- }
- r = mem [ r ] .hh .v.RH ;
- }
- }
- }
- if ( mem [ memtop - 1 ] .hh .v.RH != 0 )
- printnl ( 234 ) ;
- }
- showbox ( mem [ nest [ p ] .headfield ] .hh .v.RH ) ;
- switch ( abs ( m ) / ( 100 ) )
- {case 0 :
- {
- printnl ( 235 ) ;
- if ( a <= -65536000L )
- print ( 236 ) ;
- else printscaled ( a ) ;
- if ( nest [ p ] .pgfield != 0 )
- {
- print ( 237 ) ;
- printint ( nest [ p ] .pgfield ) ;
- print ( 238 ) ;
- if ( nest [ p ] .pgfield != 1 )
- printchar ( 115 ) ;
- }
- }
- break ;
- case 1 :
- {
- printnl ( 239 ) ;
- printint ( a ) ;
- }
- break ;
- case 2 :
- if ( a != 0 )
- {
- print ( 240 ) ;
- showbox ( a ) ;
- }
- break ;
- }
- }
- while ( p-- > for_end ) ; }
- }
- zprintparam ( n )
- integer n ;
- {printparam_regmem
- switch ( n )
- {case 0 :
- printesc ( 285 ) ;
- break ;
- case 1 :
- printesc ( 286 ) ;
- break ;
- case 2 :
- printesc ( 287 ) ;
- break ;
- case 3 :
- printesc ( 288 ) ;
- break ;
- case 4 :
- printesc ( 289 ) ;
- break ;
- case 5 :
- printesc ( 290 ) ;
- break ;
- case 6 :
- printesc ( 291 ) ;
- break ;
- case 7 :
- printesc ( 292 ) ;
- break ;
- case 8 :
- printesc ( 293 ) ;
- break ;
- case 9 :
- printesc ( 294 ) ;
- break ;
- case 10 :
- printesc ( 295 ) ;
- break ;
- case 11 :
- printesc ( 296 ) ;
- break ;
- case 12 :
- printesc ( 297 ) ;
- break ;
- case 13 :
- printesc ( 298 ) ;
- break ;
- case 14 :
- printesc ( 299 ) ;
- break ;
- case 15 :
- printesc ( 300 ) ;
- break ;
- case 16 :
- printesc ( 301 ) ;
- break ;
- case 17 :
- printesc ( 302 ) ;
- break ;
- case 18 :
- printesc ( 303 ) ;
- break ;
- case 19 :
- printesc ( 304 ) ;
- break ;
- case 20 :
- printesc ( 305 ) ;
- break ;
- case 21 :
- printesc ( 306 ) ;
- break ;
- case 22 :
- printesc ( 307 ) ;
- break ;
- case 23 :
- printesc ( 308 ) ;
- break ;
- case 24 :
- printesc ( 309 ) ;
- break ;
- case 25 :
- printesc ( 310 ) ;
- break ;
- case 26 :
- printesc ( 311 ) ;
- break ;
- case 27 :
- printesc ( 312 ) ;
- break ;
- case 28 :
- printesc ( 313 ) ;
- break ;
- case 29 :
- printesc ( 314 ) ;
- break ;
- case 30 :
- printesc ( 315 ) ;
- break ;
- case 31 :
- printesc ( 316 ) ;
- break ;
- case 32 :
- printesc ( 317 ) ;
- break ;
- case 33 :
- printesc ( 318 ) ;
- break ;
- case 34 :
- printesc ( 319 ) ;
- break ;
- case 35 :
- printesc ( 320 ) ;
- break ;
- case 36 :
- printesc ( 321 ) ;
- break ;
- case 37 :
- printesc ( 322 ) ;
- break ;
- case 38 :
- printesc ( 323 ) ;
- break ;
- case 39 :
- printesc ( 324 ) ;
- break ;
- case 40 :
- printesc ( 325 ) ;
- break ;
- case 41 :
- printesc ( 326 ) ;
- break ;
- case 42 :
- printesc ( 327 ) ;
- break ;
- case 43 :
- printesc ( 328 ) ;
- break ;
- case 44 :
- printesc ( 329 ) ;
- break ;
- case 45 :
- printesc ( 330 ) ;
- break ;
- case 46 :
- printesc ( 331 ) ;
- break ;
- case 47 :
- printesc ( 332 ) ;
- break ;
- case 48 :
- printesc ( 333 ) ;
- break ;
- case 49 :
- printesc ( 334 ) ;
- break ;
- default:
- print ( 335 ) ;
- break ;
- }
- }
- begindiagnostic () {
- begindiagnostic_regmem
- oldsetting = selector ;
- if ( ( eqtb [ 5296 ] .cint <= 0 ) && ( selector == 19 ) )
- {
- decr ( selector ) ;
- if ( history == 0 )
- history = 1 ;
- }
- }
- zenddiagnostic ( blankline )
- boolean blankline ;
- {enddiagnostic_regmem
- printnl ( 206 ) ;
- if ( blankline )
- println () ;
- selector = oldsetting ;
- }
- zprintlengthparam ( n )
- integer n ;
- {printlengthparam_regmem
- switch ( n )
- {case 0 :
- printesc ( 338 ) ;
- break ;
- case 1 :
- printesc ( 339 ) ;
- break ;
- case 2 :
- printesc ( 340 ) ;
- break ;
- case 3 :
- printesc ( 341 ) ;
- break ;
- case 4 :
- printesc ( 342 ) ;
- break ;
- case 5 :
- printesc ( 343 ) ;
- break ;
- case 6 :
- printesc ( 344 ) ;
- break ;
- case 7 :
- printesc ( 345 ) ;
- break ;
- case 8 :
- printesc ( 346 ) ;
- break ;
- case 9 :
- printesc ( 347 ) ;
- break ;
- case 10 :
- printesc ( 348 ) ;
- break ;
- case 11 :
- printesc ( 349 ) ;
- break ;
- case 12 :
- printesc ( 350 ) ;
- break ;
- case 13 :
- printesc ( 351 ) ;
- break ;
- case 14 :
- printesc ( 352 ) ;
- break ;
- case 15 :
- printesc ( 353 ) ;
- break ;
- case 16 :
- printesc ( 354 ) ;
- break ;
- case 17 :
- printesc ( 355 ) ;
- break ;
- case 18 :
- printesc ( 356 ) ;
- break ;
- case 19 :
- printesc ( 357 ) ;
- break ;
- default:
- print ( 358 ) ;
- break ;
- }
- }
- zprintcmdchr ( cmd , chrcode )
- quarterword cmd ;
- halfword chrcode ;
- {printcmdchr_regmem
- switch ( cmd )
- {case 1 :
- {
- print ( 415 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 2 :
- {
- print ( 416 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 3 :
- {
- print ( 417 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 6 :
- {
- print ( 418 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 7 :
- {
- print ( 419 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 8 :
- {
- print ( 420 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 9 :
- print ( 421 ) ;
- break ;
- case 10 :
- {
- print ( 422 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 11 :
- {
- print ( 423 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 12 :
- {
- print ( 424 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 74 :
- case 75 :
- if ( chrcode < 3544 )
- printskipparam ( chrcode - 3526 ) ;
- else if ( chrcode < 3800 )
- {
- printesc ( 260 ) ;
- printint ( chrcode - 3544 ) ;
- }
- else {
-
- printesc ( 261 ) ;
- printint ( chrcode - 3800 ) ;
- }
- break ;
- case 71 :
- if ( chrcode >= 4066 )
- {
- printesc ( 272 ) ;
- printint ( chrcode - 4066 ) ;
- }
- else switch ( chrcode )
- {case 4057 :
- printesc ( 263 ) ;
- break ;
- case 4058 :
- printesc ( 264 ) ;
- break ;
- case 4059 :
- printesc ( 265 ) ;
- break ;
- case 4060 :
- printesc ( 266 ) ;
- break ;
- case 4061 :
- printesc ( 267 ) ;
- break ;
- case 4062 :
- printesc ( 268 ) ;
- break ;
- case 4063 :
- printesc ( 269 ) ;
- break ;
- case 4064 :
- printesc ( 270 ) ;
- break ;
- default:
- printesc ( 271 ) ;
- break ;
- }
- break ;
- case 72 :
- if ( chrcode < 5317 )
- printparam ( chrcode - 5267 ) ;
- else {
-
- printesc ( 336 ) ;
- printint ( chrcode - 5317 ) ;
- }
- break ;
- case 73 :
- if ( chrcode < 5721 )
- printlengthparam ( chrcode - 5701 ) ;
- else {
-
- printesc ( 359 ) ;
- printint ( chrcode - 5721 ) ;
- }
- break ;
- case 45 :
- printesc ( 367 ) ;
- break ;
- case 89 :
- printesc ( 368 ) ;
- break ;
- case 40 :
- printesc ( 369 ) ;
- break ;
- case 41 :
- printesc ( 370 ) ;
- break ;
- case 76 :
- printesc ( 378 ) ;
- break ;
- case 61 :
- printesc ( 371 ) ;
- break ;
- case 42 :
- printesc ( 389 ) ;
- break ;
- case 16 :
- printesc ( 372 ) ;
- break ;
- case 106 :
- printesc ( 363 ) ;
- break ;
- case 87 :
- printesc ( 377 ) ;
- break ;
- case 15 :
- printesc ( 373 ) ;
- break ;
- case 91 :
- printesc ( 374 ) ;
- break ;
- case 66 :
- printesc ( 364 ) ;
- break ;
- case 62 :
- printesc ( 375 ) ;
- break ;
- case 64 :
- printesc ( 32 ) ;
- break ;
- case 101 :
- printesc ( 376 ) ;
- break ;
- case 32 :
- printesc ( 379 ) ;
- break ;
- case 36 :
- printesc ( 380 ) ;
- break ;
- case 39 :
- printesc ( 381 ) ;
- break ;
- case 37 :
- printesc ( 198 ) ;
- break ;
- case 44 :
- printesc ( 47 ) ;
- break ;
- case 18 :
- printesc ( 219 ) ;
- break ;
- case 46 :
- printesc ( 382 ) ;
- break ;
- case 17 :
- printesc ( 383 ) ;
- break ;
- case 54 :
- printesc ( 384 ) ;
- break ;
- case 90 :
- printesc ( 385 ) ;
- break ;
- case 34 :
- printesc ( 386 ) ;
- break ;
- case 102 :
- printesc ( 387 ) ;
- break ;
- case 55 :
- printesc ( 203 ) ;
- break ;
- case 63 :
- printesc ( 388 ) ;
- break ;
- case 65 :
- printesc ( 391 ) ;
- break ;
- case 95 :
- printesc ( 392 ) ;
- break ;
- case 0 :
- printesc ( 393 ) ;
- break ;
- case 97 :
- printesc ( 394 ) ;
- break ;
- case 79 :
- printesc ( 390 ) ;
- break ;
- case 83 :
- printesc ( 273 ) ;
- break ;
- case 108 :
- printesc ( 395 ) ;
- break ;
- case 70 :
- printesc ( 272 ) ;
- break ;
- case 38 :
- printesc ( 220 ) ;
- break ;
- case 33 :
- printesc ( 396 ) ;
- break ;
- case 56 :
- printesc ( 397 ) ;
- break ;
- case 35 :
- printesc ( 398 ) ;
- break ;
- case 13 :
- printesc ( 455 ) ;
- break ;
- case 103 :
- if ( chrcode == 0 )
- printesc ( 487 ) ;
- else printesc ( 488 ) ;
- break ;
- case 109 :
- switch ( chrcode )
- {case 1 :
- printesc ( 490 ) ;
- break ;
- case 2 :
- printesc ( 491 ) ;
- break ;
- case 3 :
- printesc ( 492 ) ;
- break ;
- case 4 :
- printesc ( 493 ) ;
- break ;
- default:
- printesc ( 489 ) ;
- break ;
- }
- break ;
- case 88 :
- if ( chrcode == 0 )
- printesc ( 336 ) ;
- else if ( chrcode == 1 )
- printesc ( 359 ) ;
- else if ( chrcode == 2 )
- printesc ( 260 ) ;
- else printesc ( 261 ) ;
- break ;
- case 78 :
- if ( chrcode == 1 )
- printesc ( 527 ) ;
- else printesc ( 526 ) ;
- break ;
- case 81 :
- if ( chrcode == 0 )
- printesc ( 528 ) ;
- else printesc ( 529 ) ;
- break ;
- case 82 :
- if ( chrcode == 1 )
- printesc ( 530 ) ;
- else if ( chrcode == 3 )
- printesc ( 531 ) ;
- else printesc ( 532 ) ;
- break ;
- case 69 :
- if ( chrcode == 0 )
- printesc ( 533 ) ;
- else if ( chrcode == 1 )
- printesc ( 534 ) ;
- else printesc ( 535 ) ;
- break ;
- case 107 :
- switch ( chrcode )
- {case 0 :
- printesc ( 592 ) ;
- break ;
- case 1 :
- printesc ( 593 ) ;
- break ;
- case 2 :
- printesc ( 594 ) ;
- break ;
- case 3 :
- printesc ( 595 ) ;
- break ;
- case 4 :
- printesc ( 596 ) ;
- break ;
- default:
- printesc ( 597 ) ;
- break ;
- }
- break ;
- case 104 :
- switch ( chrcode )
- {case 1 :
- printesc ( 614 ) ;
- break ;
- case 2 :
- printesc ( 615 ) ;
- break ;
- case 3 :
- printesc ( 616 ) ;
- break ;
- case 4 :
- printesc ( 617 ) ;
- break ;
- case 5 :
- printesc ( 618 ) ;
- break ;
- case 6 :
- printesc ( 619 ) ;
- break ;
- case 7 :
- printesc ( 620 ) ;
- break ;
- case 8 :
- printesc ( 621 ) ;
- break ;
- case 9 :
- printesc ( 622 ) ;
- break ;
- case 10 :
- printesc ( 623 ) ;
- break ;
- case 11 :
- printesc ( 624 ) ;
- break ;
- case 12 :
- printesc ( 625 ) ;
- break ;
- case 13 :
- printesc ( 626 ) ;
- break ;
- case 14 :
- printesc ( 627 ) ;
- break ;
- case 15 :
- printesc ( 628 ) ;
- break ;
- case 16 :
- printesc ( 629 ) ;
- break ;
- default:
- printesc ( 613 ) ;
- break ;
- }
- break ;
- case 105 :
- if ( chrcode == 2 )
- printesc ( 630 ) ;
- else if ( chrcode == 4 )
- printesc ( 631 ) ;
- else printesc ( 632 ) ;
- break ;
- case 4 :
- if ( chrcode == 128 )
- printesc ( 751 ) ;
- else {
-
- print ( 755 ) ;
- printASCII ( chrcode ) ;
- }
- break ;
- case 5 :
- if ( chrcode == 129 )
- printesc ( 752 ) ;
- else printesc ( 753 ) ;
- break ;
- case 80 :
- switch ( chrcode )
- {case 0 :
- printesc ( 818 ) ;
- break ;
- case 1 :
- printesc ( 819 ) ;
- break ;
- case 2 :
- printesc ( 820 ) ;
- break ;
- case 3 :
- printesc ( 821 ) ;
- break ;
- case 4 :
- printesc ( 822 ) ;
- break ;
- case 5 :
- printesc ( 823 ) ;
- break ;
- case 6 :
- printesc ( 824 ) ;
- break ;
- default:
- printesc ( 825 ) ;
- break ;
- }
- break ;
- case 14 :
- if ( chrcode == 1 )
- printesc ( 874 ) ;
- else printesc ( 873 ) ;
- break ;
- case 26 :
- switch ( chrcode )
- {case 4 :
- printesc ( 875 ) ;
- break ;
- case 0 :
- printesc ( 876 ) ;
- break ;
- case 1 :
- printesc ( 877 ) ;
- break ;
- case 2 :
- printesc ( 878 ) ;
- break ;
- default:
- printesc ( 879 ) ;
- break ;
- }
- break ;
- case 27 :
- switch ( chrcode )
- {case 4 :
- printesc ( 880 ) ;
- break ;
- case 0 :
- printesc ( 881 ) ;
- break ;
- case 1 :
- printesc ( 882 ) ;
- break ;
- case 2 :
- printesc ( 883 ) ;
- break ;
- default:
- printesc ( 884 ) ;
- break ;
- }
- break ;
- case 28 :
- printesc ( 204 ) ;
- break ;
- case 29 :
- printesc ( 208 ) ;
- break ;
- case 30 :
- printesc ( 210 ) ;
- break ;
- case 21 :
- if ( chrcode == 1 )
- printesc ( 902 ) ;
- else printesc ( 903 ) ;
- break ;
- case 22 :
- if ( chrcode == 1 )
- printesc ( 904 ) ;
- else printesc ( 905 ) ;
- break ;
- case 20 :
- switch ( chrcode )
- {case 0 :
- printesc ( 274 ) ;
- break ;
- case 1 :
- printesc ( 906 ) ;
- break ;
- case 2 :
- printesc ( 907 ) ;
- break ;
- case 3 :
- printesc ( 813 ) ;
- break ;
- case 4 :
- printesc ( 908 ) ;
- break ;
- case 5 :
- printesc ( 815 ) ;
- break ;
- default:
- printesc ( 909 ) ;
- break ;
- }
- break ;
- case 31 :
- if ( chrcode == 100 )
- printesc ( 911 ) ;
- else if ( chrcode == 101 )
- printesc ( 912 ) ;
- else if ( chrcode == 102 )
- printesc ( 913 ) ;
- else printesc ( 910 ) ;
- break ;
- case 43 :
- if ( chrcode == 0 )
- printesc ( 929 ) ;
- else printesc ( 928 ) ;
- break ;
- case 25 :
- if ( chrcode == 10 )
- printesc ( 940 ) ;
- else if ( chrcode == 11 )
- printesc ( 939 ) ;
- else printesc ( 938 ) ;
- break ;
- case 23 :
- if ( chrcode == 1 )
- printesc ( 942 ) ;
- else printesc ( 941 ) ;
- break ;
- case 24 :
- if ( chrcode == 1 )
- printesc ( 944 ) ;
- else printesc ( 943 ) ;
- break ;
- case 47 :
- if ( chrcode == 1 )
- printesc ( 45 ) ;
- else printesc ( 217 ) ;
- break ;
- case 48 :
- if ( chrcode == 1 )
- printesc ( 976 ) ;
- else printesc ( 975 ) ;
- break ;
- case 50 :
- switch ( chrcode )
- {case 16 :
- printesc ( 719 ) ;
- break ;
- case 17 :
- printesc ( 720 ) ;
- break ;
- case 18 :
- printesc ( 721 ) ;
- break ;
- case 19 :
- printesc ( 722 ) ;
- break ;
- case 20 :
- printesc ( 723 ) ;
- break ;
- case 21 :
- printesc ( 724 ) ;
- break ;
- case 22 :
- printesc ( 725 ) ;
- break ;
- case 23 :
- printesc ( 726 ) ;
- break ;
- case 26 :
- printesc ( 728 ) ;
- break ;
- default:
- printesc ( 727 ) ;
- break ;
- }
- break ;
- case 51 :
- if ( chrcode == 1 )
- printesc ( 731 ) ;
- else if ( chrcode == 2 )
- printesc ( 732 ) ;
- else printesc ( 977 ) ;
- break ;
- case 53 :
- printstyle ( chrcode ) ;
- break ;
- case 52 :
- switch ( chrcode )
- {case 1 :
- printesc ( 996 ) ;
- break ;
- case 2 :
- printesc ( 997 ) ;
- break ;
- case 3 :
- printesc ( 998 ) ;
- break ;
- case 4 :
- printesc ( 999 ) ;
- break ;
- case 5 :
- printesc ( 1000 ) ;
- break ;
- default:
- printesc ( 995 ) ;
- break ;
- }
- break ;
- case 49 :
- if ( chrcode == 30 )
- printesc ( 729 ) ;
- else printesc ( 730 ) ;
- break ;
- case 92 :
- if ( chrcode == 1 )
- printesc ( 1019 ) ;
- else if ( chrcode == 2 )
- printesc ( 1020 ) ;
- else printesc ( 1021 ) ;
- break ;
- case 96 :
- if ( chrcode == 0 )
- printesc ( 1022 ) ;
- else if ( chrcode == 1 )
- printesc ( 1023 ) ;
- else if ( chrcode == 2 )
- printesc ( 1024 ) ;
- else printesc ( 1025 ) ;
- break ;
- case 93 :
- if ( chrcode != 0 )
- printesc ( 1040 ) ;
- else printesc ( 1039 ) ;
- break ;
- case 94 :
- switch ( chrcode )
- {case 0 :
- printesc ( 1041 ) ;
- break ;
- case 1 :
- printesc ( 1042 ) ;
- break ;
- case 2 :
- printesc ( 1043 ) ;
- break ;
- case 3 :
- printesc ( 1044 ) ;
- break ;
- case 4 :
- printesc ( 1045 ) ;
- break ;
- case 5 :
- printesc ( 1046 ) ;
- break ;
- default:
- printesc ( 1047 ) ;
- break ;
- }
- break ;
- case 67 :
- {
- printesc ( 372 ) ;
- printhex ( chrcode ) ;
- }
- break ;
- case 68 :
- {
- printesc ( 383 ) ;
- printhex ( chrcode ) ;
- }
- break ;
- case 84 :
- if ( chrcode == 4627 )
- printesc ( 280 ) ;
- else if ( chrcode == 5139 )
- printesc ( 284 ) ;
- else if ( chrcode == 4755 )
- printesc ( 281 ) ;
- else if ( chrcode == 4883 )
- printesc ( 282 ) ;
- else if ( chrcode == 5011 )
- printesc ( 283 ) ;
- else printesc ( 337 ) ;
- break ;
- case 85 :
- printsize ( chrcode - 4579 ) ;
- break ;
- case 98 :
- if ( chrcode == 1 )
- printesc ( 803 ) ;
- else printesc ( 793 ) ;
- break ;
- case 77 :
- if ( chrcode == 0 )
- printesc ( 1063 ) ;
- else printesc ( 1064 ) ;
- break ;
- case 86 :
- {
- print ( 1072 ) ;
- print ( fontname [ chrcode ] ) ;
- if ( fontsize [ chrcode ] != fontdsize [ chrcode ] )
- {
- print ( 598 ) ;
- printscaled ( fontsize [ chrcode ] ) ;
- print ( 262 ) ;
- }
- }
- break ;
- case 99 :
- switch ( chrcode )
- {case 0 :
- printesc ( 143 ) ;
- break ;
- case 1 :
- printesc ( 144 ) ;
- break ;
- case 2 :
- printesc ( 145 ) ;
- break ;
- default:
- printesc ( 1073 ) ;
- break ;
- }
- break ;
- case 60 :
- if ( chrcode == 0 )
- printesc ( 1075 ) ;
- else printesc ( 1074 ) ;
- break ;
- case 58 :
- if ( chrcode == 0 )
- printesc ( 1076 ) ;
- else printesc ( 1077 ) ;
- break ;
- case 57 :
- if ( chrcode == 4755 )
- printesc ( 1083 ) ;
- else printesc ( 1084 ) ;
- break ;
- case 19 :
- switch ( chrcode )
- {case 1 :
- printesc ( 1086 ) ;
- break ;
- case 2 :
- printesc ( 1087 ) ;
- break ;
- case 3 :
- printesc ( 1088 ) ;
- break ;
- default:
- printesc ( 1085 ) ;
- break ;
- }
- break ;
- case 100 :
- print ( 1095 ) ;
- break ;
- case 110 :
- print ( 1096 ) ;
- break ;
- case 111 :
- printesc ( 1097 ) ;
- break ;
- case 112 :
- printesc ( 1098 ) ;
- break ;
- case 113 :
- {
- printesc ( 1019 ) ;
- printesc ( 1098 ) ;
- }
- break ;
- case 114 :
- printesc ( 1099 ) ;
- break ;
- case 59 :
- switch ( chrcode )
- {case 0 :
- printesc ( 1129 ) ;
- break ;
- case 1 :
- printesc ( 452 ) ;
- break ;
- case 2 :
- printesc ( 1130 ) ;
- break ;
- case 3 :
- printesc ( 1131 ) ;
- break ;
- case 4 :
- printesc ( 1132 ) ;
- break ;
- default:
- print ( 1133 ) ;
- break ;
- }
- break ;
- default:
- print ( 425 ) ;
- break ;
- }
- }
- #ifdef STAT
- zshoweqtb ( n )
- halfword n ;
- {showeqtb_regmem
- if ( n < 1 )
- printchar ( 63 ) ;
- else if ( n < 3526 )
- {
- sprintcs ( n ) ;
- printchar ( 61 ) ;
- printcmdchr ( eqtb [ n ] .hh.b0 , eqtb [ n ] .hh .v.RH ) ;
- if ( eqtb [ n ] .hh.b0 >= 110 )
- {
- printchar ( 58 ) ;
- showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- }
- else if ( n < 4056 )
- if ( n < 3544 )
- {
- printskipparam ( n - 3526 ) ;
- printchar ( 61 ) ;
- if ( n < 3541 )
- printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
- else printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
- }
- else if ( n < 3800 )
- {
- printesc ( 260 ) ;
- printint ( n - 3544 ) ;
- printchar ( 61 ) ;
- printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
- }
- else {
-
- printesc ( 261 ) ;
- printint ( n - 3800 ) ;
- printchar ( 61 ) ;
- printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
- }
- else if ( n < 5267 )
- if ( n == 4056 )
- {
- printesc ( 273 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ 4056 ] .hh .v.RH == 0 )
- printchar ( 48 ) ;
- else printint ( mem [ eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ) ;
- }
- else if ( n < 4066 )
- {
- printcmdchr ( 71 , n ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH != 0 )
- showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- else if ( n < 4322 )
- {
- printesc ( 272 ) ;
- printint ( n - 4066 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH != 0 )
- showtokenlist ( mem [ eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- else if ( n < 4578 )
- {
- printesc ( 274 ) ;
- printint ( n - 4322 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH == 0 )
- print ( 275 ) ;
- else {
-
- depththreshold = 0 ;
- breadthmax = 1 ;
- shownodelist ( eqtb [ n ] .hh .v.RH ) ;
- }
- }
- else if ( n < 4627 )
- {
- if ( n == 4578 )
- print ( 276 ) ;
- else if ( n < 4595 )
- {
- printesc ( 277 ) ;
- printint ( n - 4579 ) ;
- }
- else if ( n < 4611 )
- {
- printesc ( 278 ) ;
- printint ( n - 4595 ) ;
- }
- else {
-
- printesc ( 279 ) ;
- printint ( n - 4611 ) ;
- }
- printchar ( 61 ) ;
- printesc ( hash [ 3268 + eqtb [ n ] .hh .v.RH ] .v.RH ) ;
- }
- else if ( n < 5139 )
- {
- if ( n < 4755 )
- {
- printesc ( 280 ) ;
- printint ( n - 4627 ) ;
- }
- else if ( n < 4883 )
- {
- printesc ( 281 ) ;
- printint ( n - 4755 ) ;
- }
- else if ( n < 5011 )
- {
- printesc ( 282 ) ;
- printint ( n - 4883 ) ;
- }
- else {
-
- printesc ( 283 ) ;
- printint ( n - 5011 ) ;
- }
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .hh .v.RH ) ;
- }
- else {
-
- printesc ( 284 ) ;
- printint ( n - 5139 ) ;
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .hh .v.RH ) ;
- }
- else if ( n < 5701 )
- {
- if ( n < 5317 )
- printparam ( n - 5267 ) ;
- else if ( n < 5573 )
- {
- printesc ( 336 ) ;
- printint ( n - 5317 ) ;
- }
- else {
-
- printesc ( 337 ) ;
- printint ( n - 5573 ) ;
- }
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .cint ) ;
- }
- else if ( n <= 5976 )
- {
- if ( n < 5721 )
- printlengthparam ( n - 5701 ) ;
- else {
-
- printesc ( 359 ) ;
- printint ( n - 5721 ) ;
- }
- printchar ( 61 ) ;
- printscaled ( eqtb [ n ] .cint ) ;
- print ( 262 ) ;
- }
- else printchar ( 63 ) ;
- }
- #endif /* STAT */
- halfword zidlookup ( j , l )
- integer j , l ;
- {/* 40 */ register halfword Result; idlookup_regmem
- integer h ;
- halfword p ;
- halfword k ;
- h = buffer [ j ] ;
- {register integer for_end; k = j + 1 ; for_end = j + l - 1 ; if ( k <=
- for_end) do
- {
- h = h + h + buffer [ k ] ;
- while ( h >= 2551 ) h = h - 2551 ;
- }
- while ( k++ < for_end ) ; }
- p = h + 258 ;
- while ( true ) {
-
- if ( hash [ p ] .v.RH > 0 )
- if ( ( strstart [ hash [ p ] .v.RH + 1 ] - strstart [ hash [ p ] .v.RH ] )
- == l )
- if ( streqbuf ( hash [ p ] .v.RH , j ) )
- goto lab40 ;
- if ( hash [ p ] .v.LH == 0 )
- {
- if ( nonewcontrolsequence )
- p = 3525 ;
- else {
-
- if ( hash [ p ] .v.RH > 0 )
- {
- do {
- if ( ( hashused == 258 ) )
- overflow ( 362 , 3000 ) ;
- decr ( hashused ) ;
- } while ( ! ( hash [ hashused ] .v.RH == 0 ) ) ;
- hash [ p ] .v.LH = hashused ;
- p = hashused ;
- }
- {
- if ( poolptr + l > poolsize )
- overflow ( 128 , poolsize - initpoolptr ) ;
- }
- {register integer for_end; k = j ; for_end = j + l - 1 ; if ( k <=
- for_end) do
- {
- strpool [ poolptr ] = buffer [ k ] ;
- incr ( poolptr ) ;
- }
- while ( k++ < for_end ) ; }
- hash [ p ] .v.RH = makestring () ;
- ;
- #ifdef STAT
- incr ( cscount ) ;
- #endif /* STAT */
- }
- goto lab40 ;
- }
- p = hash [ p ] .v.LH ;
- }
- lab40: Result = p ;
- return(Result) ;
- }
- znewsavelevel ( c )
- groupcode c ;
- {newsavelevel_regmem
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- savestack [ saveptr ] .hh.b0 = 3 ;
- savestack [ saveptr ] .hh.b1 = curgroup ;
- savestack [ saveptr ] .hh .v.RH = curboundary ;
- if ( curlevel == 255 )
- overflow ( 400 , 255 ) ;
- curboundary = saveptr ;
- incr ( curlevel ) ;
- incr ( saveptr ) ;
- curgroup = c ;
- }
- zeqdestroy ( w )
- memoryword w ;
- {eqdestroy_regmem
- halfword q ;
- switch ( w .hh.b0 )
- {case 110 :
- case 111 :
- case 112 :
- case 113 :
- deletetokenref ( w .hh .v.RH ) ;
- break ;
- case 116 :
- deleteglueref ( w .hh .v.RH ) ;
- break ;
- case 117 :
- {
- q = w .hh .v.RH ;
- if ( q != 0 )
- freenode ( q , mem [ q ] .hh .v.LH + mem [ q ] .hh .v.LH + 1 ) ;
- }
- break ;
- case 118 :
- flushnodelist ( w .hh .v.RH ) ;
- break ;
- default:
- ;
- break ;
- }
- }
- zeqsave ( p , l )
- halfword p ;
- quarterword l ;
- {eqsave_regmem
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- if ( l == 0 )
- savestack [ saveptr ] .hh.b0 = 1 ;
- else {
-
- savestack [ saveptr ] = eqtb [ p ] ;
- incr ( saveptr ) ;
- savestack [ saveptr ] .hh.b0 = 0 ;
- }
- savestack [ saveptr ] .hh.b1 = l ;
- savestack [ saveptr ] .hh .v.RH = p ;
- incr ( saveptr ) ;
- }
- zeqdefine ( p , t , e )
- halfword p ;
- quarterword t ;
- halfword e ;
- {eqdefine_regmem
- if ( eqtb [ p ] .hh.b1 == curlevel )
- eqdestroy ( eqtb [ p ] ) ;
- else if ( curlevel > 1 )
- eqsave ( p , eqtb [ p ] .hh.b1 ) ;
- eqtb [ p ] .hh.b1 = curlevel ;
- eqtb [ p ] .hh.b0 = t ;
- eqtb [ p ] .hh .v.RH = e ;
- }
- zeqworddefine ( p , w )
- halfword p ;
- integer w ;
- {eqworddefine_regmem
- if ( xeqlevel [ p ] != curlevel )
- {
- eqsave ( p , xeqlevel [ p ] ) ;
- xeqlevel [ p ] = curlevel ;
- }
- eqtb [ p ] .cint = w ;
- }
- zgeqdefine ( p , t , e )
- halfword p ;
- quarterword t ;
- halfword e ;
- {geqdefine_regmem
- eqdestroy ( eqtb [ p ] ) ;
- eqtb [ p ] .hh.b1 = 1 ;
- eqtb [ p ] .hh.b0 = t ;
- eqtb [ p ] .hh .v.RH = e ;
- }
- zgeqworddefine ( p , w )
- halfword p ;
- integer w ;
- {geqworddefine_regmem
- eqtb [ p ] .cint = w ;
- xeqlevel [ p ] = 1 ;
- }
- zsaveforafter ( t )
- halfword t ;
- {saveforafter_regmem
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- savestack [ saveptr ] .hh.b0 = 2 ;
- savestack [ saveptr ] .hh.b1 = 0 ;
- savestack [ saveptr ] .hh .v.RH = t ;
- incr ( saveptr ) ;
- }
- #ifdef STAT
- zrestoretrace ( p , s )
- halfword p ;
- strnumber s ;
- {restoretrace_regmem
- begindiagnostic () ;
- printchar ( 123 ) ;
- print ( s ) ;
- printchar ( 32 ) ;
- showeqtb ( p ) ;
- printchar ( 125 ) ;
- enddiagnostic ( false ) ;
- }
- #endif /* STAT */
- unsave () {
- /* 30 */ unsave_regmem
- halfword p ;
- quarterword l ;
- halfword t ;
- if ( curlevel > 1 )
- {
- decr ( curlevel ) ;
- while ( true ) {
-
- decr ( saveptr ) ;
- if ( savestack [ saveptr ] .hh.b0 == 3 )
- goto lab30 ;
- p = savestack [ saveptr ] .hh .v.RH ;
- if ( savestack [ saveptr ] .hh.b0 == 2 )
- {
- t = curtok ;
- curtok = p ;
- backinput () ;
- curtok = t ;
- }
- else {
-
- if ( savestack [ saveptr ] .hh.b0 == 0 )
- {
- l = savestack [ saveptr ] .hh.b1 ;
- decr ( saveptr ) ;
- }
- else savestack [ saveptr ] = eqtb [ 3525 ] ;
- if ( p < 5267 )
- if ( eqtb [ p ] .hh.b1 == 1 )
- {
- eqdestroy ( savestack [ saveptr ] ) ;
- ;
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 402 ) ;
- #endif /* STAT */
- }
- else {
-
- eqdestroy ( eqtb [ p ] ) ;
- eqtb [ p ] = savestack [ saveptr ] ;
- ;
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 403 ) ;
- #endif /* STAT */
- }
- else if ( xeqlevel [ p ] != 1 )
- {
- eqtb [ p ] = savestack [ saveptr ] ;
- xeqlevel [ p ] = l ;
- ;
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 403 ) ;
- #endif /* STAT */
- }
- else {
-
- ;
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 402 ) ;
- #endif /* STAT */
- }
- }
- }
- lab30: curgroup = savestack [ saveptr ] .hh.b1 ;
- curboundary = savestack [ saveptr ] .hh .v.RH ;
- }
- else confusion ( 401 ) ;
- }
-